﻿//713. 乘积小于 K 的子数组
//给你一个整数数组 nums 和一个整数 k ，请你返回子数组内所有元素的乘积严格小于 k 的连续子数组的数目。



class Solution {
public:
    int numSubarrayProductLessThanK(vector<int>& nums, int k)
    {
        if (k <= 1)
        {
            return 0;
        }
        int ans = 0;
        int sub = 1;
        int left = 0, right = -1;
        for (right = 0; right < nums.size(); right++)
        {
            sub *= nums[right];
            while (sub >= k)
            {
                sub /= nums[left++];
            }
            ans += right - left + 1;
        }
        return ans;
    }
};